package com.ruoyi.psi.base.product.domain;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.annotation.Excel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.NotNull;
import java.sql.Timestamp;

/**
 * 商品管理实体类
 * 对应数据库字段 psi_base_produce
 * @author lsy 2021.8.17
 * 修改：
 */
@Data
public class ProductDomain {
    /**
     * 产品编号
     */
    @NotNull(message = "产品编号不能为空")
    @ApiModelProperty(value = "产品编号", required = true)
    @Excel(name = "产品编号")
    private String produceId;

    /**
     * 产品名称
     */
    @Excel(name = "产品名称")
    private String produceName;

    /**
     * 类别编号
     */
    @NotNull(message = "产品类别编号不能为空")
    @ApiModelProperty(value = "产品类别编号", required = true)
    @Excel(name = "类别编号")
    private String baseCategoryId;

    /**
     * 计量单位编号
     */
    @NotNull(message = "计量单位编号不能为空")
    @ApiModelProperty(value = "计量单位编号", required = true)
    @Excel(name = "计量单位编号")
    private String baseUnitId;

    /**
     * 产品规格
     */
    @Excel(name = "产品规格")
    private String produceSpecs;

    /**
     * 产品品牌
     */
    @Excel(name = "产品品牌")
    private String produceBrand;

    private String produceType; //产品类型 1-自制 2-外购 3-委外

    /**
     * 供应商编号
     */
    @Excel(name = "供应商编号")
    private String supplierInfoId;

    /**
     * 采购单价
     */
    @Excel(name = "采购单价")
    private Double producePurchasePrice;

    /**
     * 销售单价
     */
    @Excel(name = "销售单价")
    private Double produceSalePrice;

    /**
     * 销售提成
     */
    @Excel(name = "销售提成")
    private Double produceSaleCommission;

    /**
     * 月销售目标数量
     */
    @Excel(name = "月销售目标数量")
    private Double monthlySalesTargetQuantity;

    /**
     * 产品来源
     */
    @Excel(name = "产品来源")
    private String produceSourceType;
    /**
     * 最小采购量
     */
    @Excel(name = "最小采购量")
    private Double producePurchaseMin;

    /**
     * 创建时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @Excel(name = "创建时间")
    private Timestamp createTime;
    /**
     * 备注
     */
    @Excel(name = "备注")
    private String remark;
}
